<?php

    //FIXME: apagar!
    class Listas 
    {
	
        public static function RetornarCamposTabela($tabela)
        { return TUtils::CriarResultSet("select campo as id, upper(campo) as nome from Dados_Tabela('$tabela') where tabela='$tabela'"); }

        public static function RetornarTiposContrato()
        { return TUtils::CriarResultSet("select tipocontratoid as id, nome from tiposcontrato order by nome"); }
	    
        public static Function RetornarModalidadesDeLicitacao()
        { return TUtils::CriarResultSet("select ModalidadeLicitacaoID as id, Nome from ModalidadesLicitacao order by Nome"); }

        public static Function RetornarStatusDoContrato()
        { return TUtils::CriarResultSet("select StatusID as id, Descricao as nome from Status where Tipo = 1 order by Descricao"); }

        public static Function RetornarOrgaos()
        { return TUtils::CriarResultSet("select OrgaoID as id, sigla as nome from Orgaos order by Nome"); }

        public static Function RetornarNucleoGestor()
        { return TUtils::CriarResultSet("select NucleoGestorID as id, fantasia as nome from NucleoGestor order by Nome"); }
                
        public static Function RetornarEmpresas()
        { return TUtils::CriarResultSet("select EmpresaID as id, fantasia as nome from Empresas order by fantasia"); }

        public static Function RetornarCargos()
        { return TUtils::CriarResultSet("select CargoID as id, Descricao as nome from Cargos order by Descricao"); }

    	public static Function RetornarEscolaridades()
        { return TUtils::CriarResultSet("select escolaridadeid as id, descricao as nome from Escolaridade order by Descricao"); }
        
        public static function RetornarVagasContratoSemLotacao($contrato)
        {
            $sql = "select
                        v.VagaID as id
                        , c.Descricao as nome
                    from vaga v
                    join cargos c on c.CargoID = V.CargoID
                    where v.ContratoID = $contrato
                    except
                    select
                        w.VagaID as id, w.Cargo as nome
                    from vwvagaslotacao w
                    where w.ContratoID = $contrato
                    order by 2";

            return TUtils::CriarResultSet($sql);
        }

    	public static function RetornarVagasContrato($contratoid)
        {
            $sql = "select v.cargoid as id, c.descricao as nome
                    from vaga as v, cargos as c
                    where v.cargoid = c.cargoid AND v.contratoid = $contratoid
                    order by c.descricao";
            
            return TUtils::CriarResultSet($sql);
        }
        
        public static function RetornarLotacoesContrato($contrato)
        {
            $sql = "select
                        l.LotacaoID as id
                        , l.fantasia as nome
                    from Lotacoes l
                    join LotacoesContrato lc on lc.LotacaoID = l.LotacaoID
                    where lc.ContratoID = $contrato
                    order by l.Nome";

            return TUtils::CriarResultSet($sql);
        }

        public static function RetornarLotacoesNaoContrato($contrato)
        {
            $sql = "select
                        l.LotacaoID as id
                        , l.fantasia as nome
                    from Lotacoes l
                    where l.LotacaoID not in (select distinct LotacaoID from LotacoesContrato where ContratoID = $contrato)
                    order by l.Nome";
            
            return TUtils::CriarResultSet($sql);
        }
        
        public static Function RetornarPerfis()
        { return TUtils::CriarResultSet("select PerfilID as id, nome as nome from Perfil order by nome"); }
        
    public static Function RetornarPerfisComportamentais()
        { return TUtils::CriarResultSet("select PerfilComportamentalID as id, descricao as nome from PerfilComportamental order by descricao"); }
	    
    }
?>